<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style: none;
        }

        .banner {
            width: 500px;
            height: 300px;
            background-color: #ccc;
            margin: 50px auto;
            position: relative;
            overflow: hidden;
        }

        .banner ul {
            width: 2000px;
            display: flex;
            position: absolute;
        }

        .banner ul li {
            width: 500px;
            height: 300px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 50px;
        }

        .banner span {
            position: absolute;
            top: 0;
            bottom: 0;
            margin: auto;
            width: 30px;
            height: 30px;
            background-color: rgba(0, 0, 0, .5);
            color: #fff;
            text-align: center;
            line-height: 30px;
        }

        #next {
            right: 0;
        }

        ol {
            position: absolute;
            width: 100%;
            display: flex;
            justify-content: center;
            bottom: 0;
        }

        ol li {
            width: 20px;
            height: 20px;
            margin: 10px;
            background-color: #666;
        }
    </style>
</head>

<body>

    <div class="banner">

        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <ol>
            <li style="background-color:red;"></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
        <span id="prev">&lt;</span>
        <span id="next">&gt;</span>
    </div>


    <script>

        // 轮播：
        //    css ul宽度设置大一些   保证可以存入所有的图片
        //    bug   span上下翻页 要在上面  z-index

        // 思路：移动ul的位置

        // 计数器   控制播放第几张  


        // 全局变量
        var index = 0;   // 控制播放第几张图片
        var t;   // 定时器



        var oUl = document.getElementById('list');
        var oPrev = document.getElementById('prev');
        var oNext = document.getElementById('next');
        var oLis = document.querySelectorAll('ol li');
        console.log(oPrev);


        // 自动播放
        autoPlay();


        // 上翻页
        oPrev.onclick = function () {
            clearInterval(t);
            if (index === 0) {
                index = 4;
            }
            index--;
            show();
            autoPlay();
        }
        // 下翻页
        oNext.onclick = function () {
            clearInterval(t);
            if (index === 3) {
                index = -1;
            }
            index++;
            show();
            autoPlay();
        }
        // 小点切换
        // 循环绑定事件
        for (var i = 0; i < oLis.length; i++) {
            // 给小点添加自定义属性 index
            oLis[i].index = i;
            oLis[i].onclick = function () {
                // i 已经异步 了   i=4
                clearInterval(t);
                index = this.index;
                show();
                autoPlay()
            }
        }


        function autoPlay() {
            t = setInterval(function () {
                index++;
                if (index === 4) {
                    index = 0;
                }
                // 显示index对应的这张图片(图片显示且小点也显示)
                show();
            }, 1000)
        }


        // 显示index对应的这张图片(图片显示且小点也显示)
        function show() {
            // 显示一张图片
            oUl.style.left = - index * 500 + 'px';
            // 小点显示
            for (var i = 0; i < oLis.length; i++) {
                oLis[i].style.backgroundColor = '#666';
            }
            // 当前显示
            oLis[index].style.backgroundColor = 'red';
        }


    </script>

</body>

</html>